perm filename NREVER.TIM[TIM,LSP] blob
sn#702199 filedate 1983-03-17 generic text, type C, neo UTF8
COMMENT ā VALID 00012 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 (fasload nrevers)
C00005 00003 (fasload nrevers)
C00008 00004 (fasload nrevers)
C00011 00005 (fasload nrevers)
C00013 00006 (fasload nrevers)
C00017 00007 (fasload nrevers)
C00021 00008 (fasload nrevers)
C00025 00009 (fasload nrevers)
C00026 00010 SAIL (MODEL B)
C00032 00011 Why is Kreverse faster than Greverse in the 0-7(10000) case?
C00040 00012 (fasload nreverse)
C00043 ENDMK
Cā;
(fasload nrevers)
(defun better (x y)
(//$ (-$ x y) x))
(gtimits)
Timing performed on Friday 01/21/83 at 18:16:20.
Cpu (- GC) Time = 5.03
Elapsed Time = 12.4166666
Wholine Time = 6.96666664
GC Time = 0.0
Load Average Before = 0.32562709
Load Average After = 0.458365798
Average Load Average = 0.391996443
NIL
(xtimits)
Timing performed on Friday 01/21/83 at 17:28:38.
Cpu (- GC) Time = 4.79
Elapsed Time = 21.6
Wholine Time = 7.23333335
GC Time = 0.0
Load Average Before = 2.44889772
Load Average After = 2.61320937
Average Load Average = 2.53105354
NIL
XREVERSE IS 4.77% BETTER THAN GREVERSE
(ntimits)
Timing performed on Friday 01/21/83 at 17:45:14.
Cpu (- GC) Time = 2.434
Elapsed Time = 22.5166667
Wholine Time = 3.86666667
GC Time = 0.0
Load Average Before = 2.42375052
Load Average After = 3.09093595
Average Load Average = 2.75734323
NIL
NREVERSE IS 49.18% BETTER THAN XREVERSE
;(gtimitl)
Timing performed on Friday 01/21/83 at 18:18:23.
Cpu (- GC) Time = 43.978
Elapsed Time = 80.0
Wholine Time = 65.0
GC Time = 0.0
Load Average Before = 0.78599167
Load Average After = 1.02788734
Average Load Average = 0.90693951
NIL
(xtimitl)
Timing performed on Friday 01/21/83 at 17:32:41.
Cpu (- GC) Time = 47.279
Elapsed Time = 190.466667
Wholine Time = 77.533334
GC Time = 0.0
Load Average Before = 1.96534216
Load Average After = 2.55297685
Average Load Average = 2.2591595
NIL
GREVERSE IS 6.98% BETTER THAN XREVERSE
(ntimitl)
Timing performed on Friday 01/21/83 at 17:45:44.
Cpu (- GC) Time = 21.142
Elapsed Time = 76.066667
Wholine Time = 35.1
GC Time = 0.0
Load Average Before = 3.02057815
Load Average After = 2.91055357
Average Load Average = 2.96556586
NIL
NREVERSE IS 51.93% BETTER THAN GREVERSE
(fasload nrevers)
(xtimits)
Timing performed on Thursday 01/27/83 at 14:12:29.
Cpu (- GC) Time = 5.453
Elapsed Time = 16.8166666
Wholine Time = 8.2666667
GC Time = 0.0
Load Average Before = 1.16764712
Load Average After = 1.35011363
Average Load Average = 1.25888038
NIL
(gtimits)
Timing performed on Thursday 01/27/83 at 14:12:51.
Cpu (- GC) Time = 5.724
Elapsed Time = 22.3333333
Wholine Time = 8.0333333
GC Time = 0.0
Load Average Before = 1.38667965
Load Average After = 1.67263377
Average Load Average = 1.52965671
NIL
Statistics
Meter for: GREVERSE
(meter:report)
Entries = 100000
Special Exit1 = 10000
Special Exit2 = 5000
Special Exit3 = 5000
Exit1 = 30000
Exit2 = 25000
Exit3 = 25000
Meter for: XREVERSE
Entries = 100000
Exit1 = 35000
Exit2 = 35000
Exit3 = 30000
T
(xtimitl)
Timing performed on Thursday 01/27/83 at 14:27:52.
Cpu (- GC) Time = 47.951
Elapsed Time = 344.766666
Wholine Time = 92.183333
GC Time = 0.0
Load Average Before = 1.95733905
Load Average After = 4.20302606
Average Load Average = 3.08018255
NIL
(gtimitl)
Timing performed on Thursday 01/27/83 at 14:34:05.
Cpu (- GC) Time = 44.868
Elapsed Time = 189.316668
Wholine Time = 76.1
GC Time = 0.0
Load Average Before = 4.2228086
Load Average After = 3.07352614
Average Load Average = 3.64816737
NIL
(meter:report)
Statistics
Meter for: GREVERSE
Entries = 50000
Special Exit1 = 200
Special Exit2 = 100
Special Exit3 = 100
Exit1 = 16600
Exit2 = 16500
Exit3 = 16500
Meter for: XREVERSE
Entries = 50000
Exit1 = 16700
Exit2 = 16700
Exit3 = 16600
T
(fasload nrevers)
(fasload meter)
(greverse-init)(xreverse-init)
(xtimits)
Timing performed on Thursday 01/27/83 at 16:11:01.
Cpu (- GC) Time = 8.27
Elapsed Time = 25.2666667
Wholine Time = 12.8666667
GC Time = 0.0
Load Average Before = 2.087772
Load Average After = 2.15831673
Average Load Average = 2.12304437
NIL
(gtimits)
Timing performed on Thursday 01/27/83 at 16:11:50.
Cpu (- GC) Time = 8.165
Elapsed Time = 23.5833333
Wholine Time = 12.75
GC Time = 0.0
Load Average Before = 1.91675103
Load Average After = 2.0045544
Average Load Average = 1.96065271
NIL
(meter:report)
Statistics
Meter for: GREVERSE
Entries = 100000
RPLACAs = 180000
RPLACDs = 840000
Meter for: XREVERSE
Entries = 100000
RPLACDs = 950000
T
GREVERSE-ARRAY
XREVERSE-ARRAY
(xtimitl)
Timing performed on Thursday 01/27/83 at 16:13:13.
Cpu (- GC) Time = 88.429
Elapsed Time = 298.35
Wholine Time = 142.2
GC Time = 0.0
Load Average Before = 1.7085036
Load Average After = 2.5986457
Average Load Average = 2.15357465
NIL
(gtimitl)
Timing performed on Thursday 01/27/83 at 16:18:54.
Cpu (- GC) Time = 85.044
Elapsed Time = 197.65
Wholine Time = 130.983334
GC Time = 0.0
Load Average Before = 2.44514573
Load Average After = 1.86368799
Average Load Average = 2.15441686
NIL
(meter:report)
Statistics
Meter for: GREVERSE
Entries = 50000
RPLACAs = 99600
RPLACDs = 12424800
Meter for: XREVERSE
Entries = 50000
RPLACDs = 12475000
T
(fasload nrevers)
(fasload meter)
(xtimitl1)
Timing performed on Thursday 01/27/83 at 16:52:28.
Cpu (- GC) Time = 89.725
Elapsed Time = 323.733334
Wholine Time = 143.15
GC Time = 0.0
Load Average Before = 1.36123526
Load Average After = 2.66708148
Average Load Average = 2.01415837
NIL
(gtimitl1)
Timing performed on Thursday 01/27/83 at 16:58:07.
Cpu (- GC) Time = 86.761
Elapsed Time = 246.266666
Wholine Time = 144.166666
GC Time = 0.0
Load Average Before = 2.4922185
Load Average After = 2.20709407
Average Load Average = 2.34965628
NIL
(meter:report)
Statistics
Meter for: GREVERSE
Entries = 50000
RPLACAs = 100000
RPLACDs = 12625000
Meter for: XREVERSE
Entries = 50000
RPLACDs = 12675000
T
(fasload nrevers)
(fasload meter)
(xtimits)
Timing performed on Thursday 01/27/83 at 17:49:47.
Cpu (- GC) Time = 12.572
Elapsed Time = 44.366667
Wholine Time = 18.3
GC Time = 0.0
Load Average Before = 0.7300719
Load Average After = 1.36674821
Average Load Average = 1.04841006
NIL
(gtimits)
Timing performed on Thursday 01/27/83 at 17:51:00.
Cpu (- GC) Time = 11.347
Elapsed Time = 22.9
Wholine Time = 15.9333333
GC Time = 0.0
Load Average Before = 1.22334313
Load Average After = 1.30853271
Average Load Average = 1.26593792
NIL
(meter:report)
Statistics
Meter for: GREVERSE
Entries = 100000
NULLs = 890000
RPLACAs = 180000
RPLACDs = 840000
GOs = 175000
Meter for: XREVERSE
Entries = 100000
NULLs = 1050000
RPLACDs = 950000
GOs = 285000
T
(xtimitl)
Timing performed on Thursday 01/27/83 at 17:52:12.
Cpu (- GC) Time = 142.512
Elapsed Time = 309.05
Wholine Time = 210.416666
GC Time = 0.0
Load Average Before = 1.00957465
Load Average After = 1.60779774
Average Load Average = 1.3086862
NIL
(gtimitl)
Timing performed on Thursday 01/27/83 at 17:57:41.
Cpu (- GC) Time = 139.893
Elapsed Time = 306.833332
Wholine Time = 209.566668
GC Time = 0.0
Load Average Before = 1.43141723
Load Average After = 1.8702892
Average Load Average = 1.65085322
NIL
(meter:report)
Statistics
Meter for: GREVERSE
Entries = 150000
NULLs = 13315800
RPLACAs = 279600
RPLACDs = 13264800
GOs = 4250500
Meter for: XREVERSE
Entries = 150000
NULLs = 13575000
RPLACDs = 13425000
GOs = 4426700
T
NULLs
type 13575000-13315800
13575000-13315800 = 259200
RPLACs
type 13425000-(13264800+279600)
13425000-(13264800+279600) = -119400
GOs
type 4426700-4250500
4426700-4250500 = 176200
XREVERSE does this many more operations than GREVERSE
type 259200+176200-119400
259200+176200-119400 = 316000
(greverse-init)(xreverse-init)
(gtimitl)
Timing performed on Thursday 01/27/83 at 18:08:20.
Cpu (- GC) Time = 139.837
Elapsed Time = 333.15
Wholine Time = 208.1
GC Time = 0.0
Load Average Before = 0.45505178
Load Average After = 1.75526619
Average Load Average = 1.10515898
NIL
(fasload nrevers)
(fasload meter)
(xtimits)
Timing performed on Thursday 01/27/83 at 18:51:58.
Cpu (- GC) Time = 19.132
Elapsed Time = 110.566667
Wholine Time = 27.2166667
GC Time = 0.0
Load Average Before = 3.37192142
Load Average After = 3.84085488
Average Load Average = 3.60638815
NIL
(gtimits)
Timing performed on Thursday 01/27/83 at 18:54:02.
Cpu (- GC) Time = 19.735
Elapsed Time = 47.4166665
Wholine Time = 28.3666666
GC Time = 0.0
Load Average Before = 3.62646997
Load Average After = 3.13842237
Average Load Average = 3.38244617
NIL
(meter:report)
Statistics
Meter for: GREVERSE
Entries = 100000
NULLs = 1050000
SETQs = 1265000
CDRs = 1030000
RPLACAs = 180000
CARs = 180000
PROGs = 80000
RPLACDs = 840000
GOs = 175000
Meter for: XREVERSE
Entries = 100000
PROGs = 100000
NULLs = 1050000
CDRs = 950000
SETQs = 950000
RPLACDs = 950000
GOs = 285000
T
(greverse-init)(xreverse-init)
GREVERSE-ARRAY
XREVERSE-ARRAY
(gtimitl)
Timing performed on Thursday 01/27/83 at 20:04:43.
Cpu (- GC) Time = 222.446
Elapsed Time = 398.066666
Wholine Time = 314.9
GC Time = 0.0
Load Average Before = 0.41551113
Load Average After = 1.29725814
Average Load Average = 0.856384635
NIL
(xtimitl)
Timing performed on Thursday 01/27/83 at 20:12:09.
Cpu (- GC) Time = 224.331
Elapsed Time = 399.166668
Wholine Time = 323.216667
GC Time = 0.0
Load Average Before = 0.94562602
Load Average After = 1.35706067
Average Load Average = 1.15134335
NIL
(meter:report)
Statistics
Meter for: GREVERSE
Entries = 50000
NULLs = 12525000
SETQs = 12673300
CDRs = 12524600
RPLACAs = 99600
CARs = 99600
PROGs = 49600
RPLACDs = 12424800
GOs = 4075500
Meter for: XREVERSE
Entries = 50000
PROGs = 50000
NULLs = 12525000
CDRs = 12475000
SETQs = 12475000
RPLACDs = 12475000
GOs = 4141700
T
Meter for: GREVERSE Meter for: XREVERSE
Entries = 50000 Entries = 50000
NULLs = 12525000 NULLs = 12525000
CDRs = 12574600 CDRs = 12524600
SETQs = 12673300 SETQs = 12475000
RPLACs = 12524400 RPLACDs = 12475000
PROGs = 49600 PROGs = 50000
GOs = 4075500 GOs = 4141700
(fasload nrevers)
(fasload meter)
(defun make-n (n)
(do ((n n (1- n))
(a () (push n a)))
((= n 0) (setq l a) t)))
(make-n 12.)
(greverse-init)(xreverse-init)
(progn (greverse l) t)
(progn (xreverse l) t)
(meter:report)
GREVERSE-ARRAY
XREVERSE-ARRAY
T
T
T
Statistics
Meter for: GREVERSE
Entries = 1
NULLs = 11
SETQs = 14
CAR-CDRs = 13
RPLACs = 11
PROGs = 1
GOs = 2
Meter for: XREVERSE
Entries = 1
PROGs = 1
NULLs = 11
CAR-CDRs = 10
SETQs = 10
RPLACs = 10
GOs = 3
T
T
GREVERSE-ARRAY
XREVERSE-ARRAY
T
T
Statistics
Meter for: GREVERSE
Entries = 1
NULLs = 12
SETQs = 15
CAR-CDRs = 14
RPLACs = 12
PROGs = 1
GOs = 2
Meter for: XREVERSE
Entries = 1
PROGs = 1
NULLs = 12
CAR-CDRs = 11
SETQs = 11
RPLACs = 11
GOs = 3
T
T
GREVERSE-ARRAY
XREVERSE-ARRAY
T
T
Statistics
Meter for: GREVERSE
Entries = 1
NULLs = 13
SETQs = 16
CAR-CDRs = 15
RPLACs = 13
PROGs = 1
GOs = 2
Meter for: XREVERSE
Entries = 1
PROGs = 1
NULLs = 13
CAR-CDRs = 12
SETQs = 12
RPLACs = 12
GOs = 4
T
(gtimitl)
Timing performed on Thursday 01/27/83 at 21:30:54.
Cpu (- GC) Time = 223.755
Elapsed Time = 925.78333
Wholine Time = 360.666668
GC Time = 0.0
Load Average Before = 2.2628181
Load Average After = 5.45643306
Average Load Average = 3.85962558
NIL
(xtimitl)
Timing performed on Thursday 01/27/83 at 21:47:29.
Cpu (- GC) Time = 225.898
Elapsed Time = 786.416664
Wholine Time = 376.35
GC Time = 0.0
Load Average Before = 4.54944575
Load Average After = 1.94856465
Average Load Average = 3.2490052
NIL
(meter:report)
Statistics
Meter for: GREVERSE Meter for: XREVERSE
Entries = 50000 Entries = 50000
NULLs = 12525000 NULLs = 12525000 0
SETQs = 12673300 SETQs = 12475000 +198300
CAR-CDRs = 12624200 CAR-CDRs = 12475000 +149200
RPLACs = 12524400 RPLACs = 12475000 + 49400
PROGs = 49600 PROGs = 50000 - 400
GOs = 4075500 GOs = 4141700 - 66200
(defun hack ()
(- (progn (read)(read)(read)) (progn (read)(read)(read))))
(fasload nrevers)
(gtimitl)
Timing performed on Saturday 01/29/83 at 18:14:29.
Cpu (- GC) Time = 44.171
Elapsed Time = 110.383333
Wholine Time = 73.166667
GC Time = 0.0
Load Average Before = 0.82098305
Load Average After = 1.40752971
Average Load Average = 1.11425638
NIL
(xtimitl)
Timing performed on Saturday 01/29/83 at 18:17:24.
Cpu (- GC) Time = 43.84
Elapsed Time = 108.766666
Wholine Time = 71.733334
GC Time = 0.0
Load Average Before = 1.00243688
Load Average After = 1.45095289
Average Load Average = 1.22669488
NIL
;;; SAIL (MODEL B)
(fasload nreverse)
(xtimits)
Timing performed on Friday 03/04/83 at 16:27:58.
Cpu (- GC) Time = 4.133
Elapsed Time = 8.2
Wholine Time = 6.6
GC Time = 0.0
Load Average Before = 0.90988505
Load Average After = 0.93491292
Average Load Average = 0.922398984
NIL
(gtimits)
Timing performed on Friday 03/04/83 at 16:28:14.
Cpu (- GC) Time = 4.368
Elapsed Time = 10.5
Wholine Time = 6.1666667
GC Time = 0.0
Load Average Before = 0.968218565
Load Average After = 1.03002763
Average Load Average = 0.9991231
NIL
(ktimits)
Timing performed on Friday 03/04/83 at 16:29:05.
Cpu (- GC) Time = 3.905
Elapsed Time = 13.5833334
Wholine Time = 6.5
GC Time = 0.0
Load Average Before = 1.22123373
Load Average After = 1.3665644
Average Load Average = 1.29389906
NIL
(ltimits)
Timing performed on Friday 03/04/83 at 16:28:36.
Cpu (- GC) Time = 5.446
Elapsed Time = 17.8833334
Wholine Time = 8.7166667
GC Time = 0.0
Load Average Before = 1.01124191
Load Average After = 1.2478466
Average Load Average = 1.12954426
NIL
(xtimitl)
Timing performed on Friday 03/04/83 at 16:30:34.
Cpu (- GC) Time = 40.517
Elapsed Time = 146.133333
Wholine Time = 71.25
GC Time = 0.0
Load Average Before = 0.95780206
Load Average After = 2.00175166
Average Load Average = 1.47977686
NIL
(gtimitl)
Timing performed on Friday 03/04/83 at 16:33:05.
Cpu (- GC) Time = 37.963
Elapsed Time = 107.8
Wholine Time = 67.5
GC Time = 0.0
Load Average Before = 1.95711017
Load Average After = 2.01296973
Average Load Average = 1.98503995
NIL
(ktimitl)
Timing performed on Friday 03/04/83 at 16:35:01.
Cpu (- GC) Time = 37.672
Elapsed Time = 88.916667
Wholine Time = 60.75
GC Time = 0.0
Load Average Before = 1.93647516
Load Average After = 1.87217343
Average Load Average = 1.9043243
NIL
(ltimitl)
Timing performed on Friday 03/04/83 at 16:36:34.
Cpu (- GC) Time = 61.197
Elapsed Time = 136.983334
Wholine Time = 99.433333
GC Time = 0.0
Load Average Before = 1.84041739
Load Average After = 1.70235217
Average Load Average = 1.77138478
NIL
(xtimitss)
Timing performed on Friday 03/04/83 at 17:00:25.
Cpu (- GC) Time = 1.43
Elapsed Time = 4.0
Wholine Time = 2.0
GC Time = 0.0
Load Average Before = 1.89416564
Load Average After = 1.90643787
Average Load Average = 1.90030175
NIL
(ktimitss)
Timing performed on Friday 03/04/83 at 17:00:39.
Cpu (- GC) Time = 1.37
Elapsed Time = 3.83333334
Wholine Time = 2.18333334
GC Time = 0.0
Load Average Before = 1.85959291
Load Average After = 1.86399579
Average Load Average = 1.86179435
NIL
(gtimitss)
Timing performed on Friday 03/04/83 at 17:00:48.
Cpu (- GC) Time = 1.535
Elapsed Time = 3.21666667
Wholine Time = 2.48333332
GC Time = 0.0
Load Average Before = 1.81902671
Load Average After = 1.81339347
Average Load Average = 1.81621009
NIL
(ltimitss)
Timing performed on Friday 03/04/83 at 17:00:58.
Cpu (- GC) Time = 1.972
Elapsed Time = 4.1333333
Wholine Time = 2.88333333
GC Time = 0.0
Load Average Before = 1.75778079
Load Average After = 1.75754666
Average Load Average = 1.75766373
NIL
(ntimitss)
Timing performed on Friday 03/04/83 at 17:01:07.
Cpu (- GC) Time = 0.82
Elapsed Time = 4.3
Wholine Time = 1.23333333
GC Time = 0.0
Load Average Before = 1.73366177
Load Average After = 1.80790186
Average Load Average = 1.77078182
NIL
Why is Kreverse faster than Greverse in the 0-7(10000) case?
(defun kreverse (current)
(prog (next previous)
(cond ((null current)(return ())))
b
(setq next (cdr current))
(rplacd current previous)
(cond ((null next)(return current)))
(setq previous (cdr next))
(rplacd next current)
(cond ((null previous)(return next)))
(setq current (cdr previous))
(rplacd previous next)
(cond ((null current)(return previous)))
(go b)))
(defun greverse (current)
(let (x y)
(cond ((or (null current)
(null
(setq x
(cdr current))))
current)
((null
(setq y
(cdr x)))
(rplaca current
(prog1 (car x)
(rplaca x
(car current))))
current)
((null
(cdr y))
(rplaca current
(prog1 (car y)
(rplaca y
(car current))))
current)
(t (prog (next previous first second)
(setq first current second x)
(setq previous y next x)
(setq current (cdr previous))
b
(rplacd previous next)
(setq next (cdr current))
(cond ((null next)
(rplaca first
(prog1 (car current)
(rplaca current
(car first))))
(rplacd first previous)
(rplacd second current)
(return first)))
(rplacd current previous)
(setq previous (cdr next))
(cond ((null previous)
(rplaca first
(prog1 (car next)
(rplaca next
(car first))))
(rplacd first current)
(rplacd second next)
(return first)))
(rplacd next current)
(setq current (cdr previous))
(cond ((null current)
(rplaca first
(prog1 (car previous)
(rplaca previous
(car first))))
(rplacd first next)
(rplacd second previous)
(return first)))
(go b))))))
(LAP KREVERSE SUBR)
(ARGS KREVERSE (() . 1))
(PUSH P 1)
(PUSH P (% 0 0 '() ))
(PUSH P (% 0 0 '() ))
(JUMPE 1 G0003) 0123
G0001
(HRRZ 1 @ -2 P) 123
(MOVE 5 0 P) 123
(HRRM 5 @ -2 P) 123
(MOVEM 1 -1 P) 123
(JUMPN 1 G0005) 123
(MOVE 1 -2 P) 1
(JSP T PDLNMK) 1
(JRST 0 G0008) 1
G0005
(HRRZ 2 0 1) 23
(MOVE 1 -2 P) 23
(JSP T PDLNMK) 23
(HRRM 1 @ -1 P) 23
(MOVEM 2 0 P) 23
(JUMPN 2 G0011) 23
(MOVE 1 -1 P) 2
(JRST 0 G0008) 2
G0011
(HRRZ 3 0 2) 3
(MOVE 1 -1 P) 3
(HRRM 1 0 2) 3
(MOVEM 3 -2 P) 3
(JUMPN 3 G0001) 3
(MOVEI 1 0 2) 3
(JRST 0 G0008) 3
G0003
(MOVEI 1 '() ) 0
G0008
(SUB P (% 0 0 3 3)) 0123
(JRST 0 PDLNKJ) 0123
()
(LAP GREVERSE SUBR)
(ARGS GREVERSE (() . 1))
(PUSH P 1)
(PUSH P (% 0 0 '() ))
(PUSH P (% 0 0 '() ))
(JUMPE 1 G0004) 0123
(HRRZ 1 0 1) 123
(MOVEM 1 0 P) 123
(JUMPN 1 G0003) 123
G0004
(MOVE 1 -2 P) 1
(JSP T PDLNMK) 1
(JRST 0 G0002) 1
G0003
(HRRZ 1 0 1) 23
(MOVEM 1 -1 P) 23
(JUMPN 1 G0007) 23
(HLRZ 1 @ 0 P) 2
(PUSH P 1) 2
(HLRZ 1 @ -3 P) 2
(HRLM 1 @ -1 P) 2
(POP P 1) 2
(HRLM 1 @ -2 P) 2
(MOVE 1 -2 P) 2
(JSP T PDLNMK) 2
(JRST 0 G0002) 2
G0007
(HRRZ 2 0 1) 3
(JUMPN 2 G0012) 3
(HLRZ 1 0 1) 3
(PUSH P 1) 3
(HLRZ 1 @ -3 P) 3
(HRLM 1 @ -2 P) 3
(POP P 1) 3
(HRLM 1 @ -2 P) 3
(MOVE 1 -2 P) 3
(JSP T PDLNMK) 3
(JRST 0 G0002) 3
G0012
(MOVE 1 -2 P)
(JSP T PDLNMK)
(PUSH P 0 P)
(PUSH P -2 P)
(PUSH P -2 P)
(HRRZ 3 @ -1 P)
(PUSH P 1)
(MOVEM 3 -6 P)
G0001
(MOVE 1 -1 P)
(HRRM 1 @ -2 P)
(HRRZ 2 @ -6 P)
(MOVEM 2 -1 P)
(JUMPN 2 G0021)
(HLRZ 1 @ -6 P)
(PUSH P 1)
(HLRZ 1 @ -1 P)
(HRLM 1 @ -7 P)
(POP P 1)
(HRLM 1 @ 0 P)
(MOVE 1 -2 P)
(HRRM 1 @ 0 P)
(MOVE 1 -6 P)
(JSP T PDLNMK)
(HRRM 1 @ -3 P)
(MOVE 1 0 P)
(JRST 0 G0026)
G0021
(MOVE 1 -2 P)
(HRRM 1 @ -6 P)
(HRRZ 3 0 2)
(MOVEM 3 -2 P)
(JUMPN 3 G0028)
(HLRZ 1 0 2)
(PUSH P 1)
(HLRZ 1 @ -1 P)
(HRLM 1 0 2)
(POP P 1)
(HRLM 1 @ 0 P)
(MOVE 1 -6 P)
(JSP T PDLNMK)
(HRRM 1 @ 0 P)
(HRRM 2 @ -3 P)
(MOVE 1 0 P)
(JRST 0 G0026)
G0028
(MOVE 1 -6 P)
(JSP T PDLNMK)
(HRRM 1 0 2)
(HRRZ 4 0 3)
(MOVEM 4 -6 P)
(JUMPN 4 G0001)
(HLRZ 1 0 3)
(PUSH P 1)
(HLRZ 1 @ -1 P)
(HRLM 1 0 3)
(POP P 1)
(HRLM 1 @ 0 P)
(HRRM 2 @ 0 P)
(HRRM 3 @ -3 P)
(MOVE 1 0 P)
G0026
(SUB P (% 0 0 4 4))
G0002
(SUB P (% 0 0 3 3)) 0123
(POPJ P) 0123
()
Here are the instruction counts for the cases 0-3:
Kreverse:
instr 0 1 2 3
--------------------------
jump 2 4 5 6
move 1 3 5 7
popj
push/pop
h??? 2 4 6
jsp 1 1 1
sub 1 1 1 1
--------------------------
total 4 11 16 21
Greverse
instr 0 1 2 3
--------------------------
jump 1 3 4 5
move 2 3 3
popj 1 1 1 1
push/pop 2 2
h??? 1 6 7
jsp 1 1 1
sub 1 1 1 1
--------------------------
total 3 9 12 20
(fasload nreverse)
(gtimitsss)
Timing performed on Thursday 03/17/83 at 10:56:13.
Cpu (- GC) Time = 2.028
Elapsed Time = 7.9
Wholine Time = 2.8
GC Time = 0.0
Load Average Before = 0.847022414
Load Average After = 0.949344754
Average Load Average = 0.898183584
NIL
(ktimitsss)
Timing performed on Thursday 03/17/83 at 10:56:26.
Cpu (- GC) Time = 2.048
Elapsed Time = 7.0833333
Wholine Time = 3.03333333
GC Time = 0.0
Load Average Before = 0.96173644
Load Average After = 1.04507399
Average Load Average = 1.00340521
NIL
(xtimitsss)
Timing performed on Thursday 03/17/83 at 10:56:48.
Cpu (- GC) Time = 2.114
Elapsed Time = 3.71666667
Wholine Time = 2.83333334
GC Time = 0.0
Load Average Before = 1.00266683
Load Average After = 1.02024591
Average Load Average = 1.01145637
NIL
(ltimitsss)
Timing performed on Thursday 03/17/83 at 10:56:56.
Cpu (- GC) Time = 3.054
Elapsed Time = 5.3333333
Wholine Time = 3.96666667
GC Time = 0.0
Load Average Before = 1.00687647
Load Average After = 1.02100575
Average Load Average = 1.01394111
NIL
(ntimitsss)
Timing performed on Thursday 03/17/83 at 10:57:05.
Cpu (- GC) Time = 1.308
Elapsed Time = 2.2
Wholine Time = 1.86666666
GC Time = 0.0
Load Average Before = 1.00025463
Load Average After = 1.00341952
Average Load Average = 1.00183707
NIL